#!/usr/bin/env python
# coding: utf-8

# ## 案例：汽车工厂
# ### 目标：复习类的继承，多态，简介设计模式中的工厂模式
# ### 分析：汽车工厂，首先需要有工厂，还需要有不同的汽车，每个工厂生产一种汽车就OK
# ### 原理：只需要抽象的基类，不用关心具体的实现层，实现了解耦的操作，通过多态自动调用相应方法实现。缺点，每增加一种类型，需要增加一批代码。

# In[22]:


# 汽车类
class Audi:
    def info(self):
        print('Audi 汽车')
class Tesla:
    def info(self):
        print('Tesla 汽车')


# In[25]:


# 工厂类
class Factory:
    def create(self):
        print('工厂总部')
# Audi工厂
class Audifactory(Factory):
    def create(self):
        print('制造Audi汽车')
        return Audi()
# Tesla工厂
class Teslafactory(Factory):
    def create(self):
        print('制造Tesla汽车')
        return Tesla()


# In[27]:


af = Audifactory()  # 建成实例工厂
tf = Teslafactory()
af.create().info()  # 不同工厂，生产汽车
tf.create().info()

